package top.humbleyuan.designmode.singleton;

/**
 * @Author HumbleYuan
 * @Date 2019/10/9 16:58
 * @Des 懒汉式，支持并发
 */
public class LazySingletonForConCurrency {
    private static LazySingletonForConCurrency singleton = null;

    private LazySingletonForConCurrency(){}

    /**
     * 这里只有第一次singleton为空时，会走1,其他都不会走
     * 由于同步方法，获取和释放锁效率很低，这里有大量代码不需要同步操作
     * 可以进行优化
     */
    public synchronized static LazySingletonForConCurrency getSingleton() {
        if(singleton == null)
            singleton = new LazySingletonForConCurrency();  //1
        return  singleton;
    }
}
